﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace NTFS
{
    public class Mft
    {
        public Mft()
        {
            Id = -1;
            Users = new List<user>();
            Users.Add(new user { nome = "sistema", permissoes = 6});
            Clusters = new List<int>();
        }
        public string Nome{get;set;}//Nome
        public List<int> Clusters{get;set;}//Cluesters que compõe o arquivo
        public List<user> Users{get;set;}//Permissões
        public char Tipo { get; set; }//Diretório ou arquivo 
        public int Id { get; set; }//ID do objeto
        //public Int64 IdPai { get; set; }//Id pasta pai

        public override string ToString()
        {
            string cl="",usr="";
            foreach (int i in Clusters)
		        cl=cl+i.ToString()+", ";
            foreach (user u in Users)
                usr = usr + u.nome.ToString() + " " + u.permissoes.ToString() + ", ";
            return Nome + '\n' + cl + '\n' + usr;
        }
        //$mft;6sistema;002;a;1;0
        public string Notacao()
        {
            string res = "";
            string usr = "";
            string cl = "";
            foreach (user u in Users)
                usr =  usr+u.permissoes.ToString() + u.nome.ToString() + ",";
            usr+=',';
            usr = usr.Replace(",,","");
            foreach (int i in Clusters)
		        cl=cl+string.Format("{0:D3}",i)+",";
            cl += ',';
            cl = cl.Replace(",,","");
            res = ">" + Nome + ';' + usr + ';' +  cl + ';' + Tipo + ';' + Id.ToString();
            return res;
        }
    }

    public struct user
    {
        public string nome;
        public int permissoes;
    }
}
